package logica;

import java.awt.Point;
import frame.FrameJuego;
import javax.swing.JPanel;
import objetosGraficos.Bala;
import objetosGraficos.NaveEnemiga;


public class MovimientoBala extends Thread{

	// Atributos de instancia
	private FrameJuego juego;
	private JPanel panelJuego;
	private Bala bala;
	private NaveEnemiga [] naves;
	
	// Constructor
	public MovimientoBala (FrameJuego juego, JPanel panel, Bala bala) {
		this.juego = juego;
		this.panelJuego = panel;
		this.bala = bala;
		int i = 0;
		naves = new NaveEnemiga [10];
		for (NaveEnemiga n : juego.getNavesEnemigas()){
			naves[i] = n;
			i++;
		}
	}
	
	// Métodos
	public void run (){
		boolean colisiono = false;
		while (!colisiono && !(bala.getY() < -16)) {
			NaveEnemiga ultima = null;
			for (NaveEnemiga n : naves){
				if (n.getEstado()){
					if (colisiono = Colision.colision (this.bala, n)){			
						ultima = n;
						break;
					}
				}
			}
			
			if (colisiono) {
				ultima.reducirSalud(bala.getDanio());	
				if (ultima.getSalud() < 1){
					juego.aumentarPuntaje(ultima.getPuntaje());
					juego.remove(ultima);
					ultima.morir();
					break;
				}
			} 
			else {
				bala.setLocation(new Point (bala.getX(), bala.getY() - 8));
				try{Thread.sleep(15);} catch (InterruptedException ex) {ex.printStackTrace();}
			}
		}
		this.panelJuego.remove(bala);
		this.panelJuego.repaint();
	}
	
}
